package com.zhaopin.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 描述:
 *
 * @author yin.peide
 * @create 2018-11-29 11:18
 */
public class DateUtils {

    public final static String yyyyMMddTHHmmssZ = "yyyy-MM-dd'T'HH:mm:ss'.00Z'";
    public final static String yyyyMMddTHHmmss = "yyyy-MM-dd'T'HH:mm:ss";

    public final static String yyyyMMdd = "yyyy/MM/dd";
    public final static String yyyyMMddHHmmss = "yyyy-MM-dd HH:mm:ss";
    public final static String yyyyMMddHHmmssSSS = "yyyy-MM-dd HH:mm:ss.SSS";
    public final static String yyyyMMdd20HHmmssSSS = "yyyy-MM-dd%20HH:mm:ss.SSS";
    public final static String yyyyTimeUnit = "yyyy";
    public final static String yyyy_MM_dd = "yyyy_MM_dd";


    /**
     * 根据时间类型获取相应时间
     *
     * @param time
     * @param
     * @return
     */
    public static String getTime(String time) {
        if (StringUtil.isNullOrEmpty(time)) {
            return "";
        }
        String result = "";
        time = time.replace("/Date(", "").replace(")/", "");
        time = time.substring(0, time.length() - 5);
        Date date = new Date(Long.parseLong(time));
        SimpleDateFormat format = new SimpleDateFormat(yyyyMMdd);
        result = format.format(date);
        return result;
    }


    /**
     * 根据时间类型获取时间戳
     *
     * @param time
     * @param
     * @return
     */
    public static String getTimeWithSec(String time) {
        if (StringUtil.isNullOrEmpty(time)) {
            return "";
        }
        String result = "";
        time = time.replace("/Date(", "").replace(")/", "");
        time = time.substring(0, time.length() - 5);
        Date date = new Date(Long.parseLong(time));
        SimpleDateFormat format = new SimpleDateFormat(yyyyMMddHHmmss);
        result = format.format(date);
        return result;
    }


    /**
     * 根据时间戳获取时间
     *
     * @param time
     * @param
     * @return
     */
    public static String getTimestampToFormatedTime(String time) {
        if (StringUtil.isNullOrEmpty(time)) {
            return "";
        }
        //生成long类型的time
        SimpleDateFormat format = new SimpleDateFormat(yyyyMMddHHmmss);
        Date date = new Date(Long.parseLong(time));

        String foredDate = format.format(date);
        return foredDate;
    }


    /**
     * 根据时间戳获取时间
     *
     * @param time
     * @param
     * @return
     */
    public static String getTimestampToFormatedTime(String time, String formats) {
        if (StringUtil.isNullOrEmpty(time)) {
            return "";
        }
        //生成long类型的time
        SimpleDateFormat format = new SimpleDateFormat(formats);
        Date date = new Date(Long.parseLong(time));

        String foredDate = format.format(date);
        return foredDate;
    }


    /**
     * 转换日期
     *
     * @param time
     * @param
     * @return
     */
    public static String getTimestamp(String time) throws ParseException {
        if (StringUtil.isNullOrEmpty(time)) {
            return "";
        }
        //生成long类型的time
        SimpleDateFormat format = new SimpleDateFormat(yyyyMMddHHmmss);

        Date date = format.parse(time);
        return date.getTime() + "";
    }


    public static void main(String[] args) throws ParseException {
        //

        /*目的 :按照天进行洗数据，比如 2019年1月9日洗 2002年1月1日1点0分0秒-2004年1月1日的数据1点0分0秒
                                  2019年1月10日洗 2004年1月1日1点0分0秒-2006年1月1日的数据1点0分0秒 以此类推
                                  11 08
                                  12 10
                                  13 12
                                  14 14
                                  15 16
                                  16 18
        */

//
//        String back = "-01-01T01:00:00Z";
//            Map<String, String> map = ResumeUtils.getDateMap();
//        String nowDay = getTimestampToFormatedTime(System.currentTimeMillis() + "", yyyy_MM_dd);
//        String oldYear = map.get(nowDay);
//        String beginTime = oldYear+back;
//        String endTime = Integer.parseInt(oldYear)+2+back;
//        System.out.println(beginTime);
//        System.out.println(endTime);
//        //直接设置一个map得了
//        System.out.println(getTimestampToFormatedTime(System.currentTimeMillis() + "", yyyyMMddTHHmmss) + "Z");
//        System.out.println(getTimestampToFormatedTime(0 + "", yyyyMMddTHHmmss));
////        System.out.println(DateUtils.getTimestampToFormatedTime(DateUtils.getTimestamp("2018-10-28 17:04:23"), DateUtils.yyyy));
        String dateString = "2015-09-05T16:00:00.000Z";
        System.out.println(dateString.substring(0,dateString.length()-5) + "Z");





    }
}
